package com.atguigu.gmall.product.controller;

import com.atguigu.gmall.common.result.Result;
import com.atguigu.gmall.product.model.SkuInfo;
import com.atguigu.gmall.product.service.SkuManageService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/admin/product")
public class SkuManageController {
    @Autowired
    private SkuManageService skuManageService;

    /**
     * 新建SkuManageController中提供处理保存SKU方法
     * 新增保存商品SKU信息
     * @param skuInfo
     * @return
     */
    @PostMapping("/saveSkuInfo")
    public Result getSaveSkuInfo(@RequestBody SkuInfo skuInfo){
        skuManageService.getSaveSkuInfo(skuInfo);
        return  Result.ok();
    }

    /**
     * 根据分类ID查询商品SKU列表
     * @param page
     * @param limit
     * @param category3Id
     * @return
     */
    @GetMapping("/list/{page}/{limit}")
    public Result getList(@PathVariable("page")Long page,
                          @PathVariable("limit") Long limit,
                          @RequestParam("category3Id")Long category3Id){
        Page<SkuInfo> infoPage= new Page<>(page,limit);
        infoPage=  skuManageService.getList(infoPage,category3Id);
        return  Result.ok(infoPage);


    }

    /**
     * 上架    修改 is_sale  即可    工作中尽可能不用is开头做列名
     * onSale  updateById   new 一个 SKUinfo   设置id  和is_sale
     * 或者   LambdaUpdate Query Wrapper,rtod o:后期更新索引库
     * @param skuId
     * @return
     */
    @GetMapping("/onSale/{skuId}")
    public Result getOnSale(@PathVariable("skuId")Long skuId){
        skuManageService.getOnSale(skuId);
        return Result.ok();
    }

    /**
     * 下架   修改 is_sale  即可    工作中尽可能不用is开头做列名
     * onSale  updateById   new 一个 SKUinfo   设置id  和is_sale
     * 或者   LambdaUpdate Query Wrapper,rtod o:后期更新索引库
     * @param skuId
     * @return
     */
    @GetMapping("/cancelSale/{skuId}")
    public Result getCancelSale(@PathVariable("skuId") Long skuId){
        skuManageService.getCancelSale(skuId);
        return Result.ok();
    }
}
